Color printing look-up-table

ABSTRACT

A look-up table for use in a printing system is created. The printing system prints an input image in a print color space. The look-up table is created by accessing a predetermined look-up table representing a mapping of color values of an input color space to ink-vectors of a print color space; applying a p-by-q halftone threshold matrix to each ink-vector of the predetermined look-up table to generate a p-by-q halftone cell for each ink-vector; and creating a further look-up table which maps, at least a sample of, the color values of input color space to the at least one halftone cell.

BACKGROUND

Printing systems implement some data transformation that converts pixelsof an input image in RGB (or in any other color space) to drops ofprinting fluid (e.g. ink) on a media. The data transformation mayinclude aspects of color management and conversion of colors betweendifferent color spaces, e.g. converting an input RGB image to a CMYKimage. The data transformation may also include transformation of theinput image into a format suitable for printing using drops of printingfluid, for example halftoning the input image into a pattern of dots.These transformations are achieved by a plurality of pipeline stages togenerate the control data for controlling a printing device to depositthe drops of printing fluid.

BRIEF DESCRIPTION OF DRAWINGS

For a more complete understanding, reference is now made to thefollowing description taken in conjunction with the accompanyingdrawings in which:

FIG. 1 is a simplified schematic of an example of a printing system;

FIG. 2 is a diagram of a three-dimensional, RGB, look-up-table;

FIG. 3 is a diagram of cell division of the look-up-table of FIG. 2;

FIGS. 4a and 4b , in combination, is a flowchart of an example of amethod of creating a look-up table; and

FIG. 5 is a flowchart of an example of a method of processing colorinput images.

DETAILED DESCRIPTION

FIG. 1 shows an example of a printing system 100 that may be used withthe methods described herein. The printing system 100 produces a printoutput. The print output 140 comprises colored inks deposited on asubstrate which may be paper, fabric, plastic or any other suitableprint medium. In the example of FIG. 1, input image data correspondingto an image 110 is sent to a print processor 120. The print processor120 processes the image data. The print processor 120 then outputs printcontrol data that is communicated to a printing device 130. The printingdevice 130 generates a print output 140 as instructed by the printcontrol data. The examples described herein apply to substrate printingfluids containing color pigments, e.g. colored inks. However, inaddition, other printing fluids may be used to alter the appearance of aprinted output without color pigmentation, e.g. through the applicationof gloss or the like, or to provide treatment of the substrate printingfluids, e.g. fixers or the like.

The printer processor 120 may process the input image data via aplurality of pipeline stages. One of these pipeline stages may comprise,for example, color separation to transform the pixels of the input imagein its color space (e.g. RGB) into the color space of the printingdevice (e.g. CMYK). This transformation may be carried out by a look-upoperation of a pre-computed look-up table representing a mapping of thecolor values of a color gamut of the color space of the input image tocolor values in the color space of the printing device. The anotherpipeline stage may comprise a halftone stage in which the colorconverted image, having continuous tone, is converted to a halftoneimage in which each pixel defined in the color space of the printingdevice (for example defined by the amount of each ink of the printingdevice) is additionally defined by a pattern of how each dot of each inkis placed (e.g. superimposed, overlapping, size of dots) in order togive the printed image the appearance of continuous tones.

Examples described herein refer to combinations of primary inks known asthe Neugebauer Primaries (NPs) to define how each pixel of the inputimage is to be printed. For a binary (bi-level) printer, an NP is one of2^(k) combinations of k inks within the printing system, wherein inkscan be represented in single-drop states, in a k-dimensional colorspace. For example, if a printing device uses CMY inks there can beeight NPs, these NPs relate to the following: C, M, Y, C+M overprinting(or blue), C+Y overprinting (or green), M+Y overprinting (or red), C+M+Yoverprinting (or black), and W (or white or blank indicating an absenceof ink). As is clear, a printing device with many primary inks and manyink-drop states can have more NPs available than a printing devicehaving a few primary inks and having bi-level states.

Distributions of NPs over a unit area are referred to as NeugebauerPrimary area coverages or “NPacs”. NPacs serve as the input for thehalftoning procedure. This may be seen as selecting one of the NPs atevery halftone pixel. A certain color may correspond to a certain NPacin the pre-computed LUT. The NPac may be represented as a vector,wherein [W, C, M, CM]=[a_(W) %, a_(C) %, a_(M) %, a_(CM) %], where a_(C)is the percentage area coverage for cyan ink, a_(M) is the percentagearea coverage for magenta ink, a_(CM) is the percentage area coveragefor cyan/magenta combination, and a_(W) is the percentage area coverageof white or absence of ink and where a_(W) %+a_(C) %+a_(M) %+a_(CM)%=100%.

It should be noted that there is a multitude of NPacs that correspond toany one ink-vector as used by comparative printing systems. Each ofthese NPacs however has a different combination of reflectance and colorand therefore gives access to a much larger variety of colors or largerprintable gamut. On the other hand, multiple NPacs may have the samecolor (being that color's set of metamers) while differing in spectralreflectance. There may also be multiple NPacs with the same color and/orreflectance but with different use of the available NPs.

A look-up-table (LUT) is used to determine, for each pixel of the inputimage data, the NPac which is defined by the set of NPs (inks and theiroverprints) and their corresponding area coverages.

FIG. 2 is a diagram of an example of an LUT. The LUT shown has the formof a cube and is indexed in a color space of the input image such as RGBin this example. The table has nodes each of which contains datadefining at least one NPac to be used to reproduce a particular colorhaving coordinates R, G, B. For any node indexed by RGB, the nodecontains at least one ink-vector (in the example of Halftone AreaNeugebauer Separation (HANS), the node contains at least one NPac) thatwhen halftoned over a unit area results in a color (XYZ) that is chosento map to the RGB color space of the input image.

FIG. 2 shows by way of example a surface node N1 having coordinatesRmax, G1, B1 and an interior node N2 having coordinates R2, G2, B2. Thenodes at the surface may be regarded as being in a layer at the surface.Successive layers of nodes lie below the surface. Thus, the LUT providesa discrete, non-continuous, representation of the colors to be printed.This example relates to RGB color to be printed using CMY inks. However,some printing systems may operate based on four or more colors, forexample C, M, Y and K, where K is black. In this case this printingsystem would use an LUT having an n-dimensional output, where n is fouror more.

An LUT could be either 3D RGB or 4D CMYK (or more dimensions) forexample, with the node complexity changing as a function of the numberof NPs. For example, a CMY bi-level set-up would have nodes with up toeight NPs and their respective area coverages (i.e. NPacs that can haveup to eight NPs and proportions), while a three-level (0, 1, 2 drop)CMYK system may have up to eighty one NPs and their respective areacoverages.

The print output 140 of the printing system 100 may be judged in termsof its attributes such as smoothness, noise or grain, color constancyunder different viewing conditions and the use of resources, such as,for example, ink. For many attributes, the performance of the printingsystem 100 is worse in some parts of the color gamut than in others.

In an example, the full gamut LUT of FIG. 2 may be optimised, to complywith a predetermined value of resource usage and/or quality ofattribute. For example, the full gamut color LUT of FIG. 2 is optimisedto provide a further LUT which includes NPacs which comply with apredetermined value of resource usage and/or quality of attribute(s).For example, the further LUT could include only those NPacs whichprovide minimum ink usage, or a minimum level of robustness, that is,those NPacs that exhibit the lowest level of variations duringsimulations of fluctuations in the printing device operating parameters,such as ink drop placement errors, ink-pen health, missing nozzles,misalignment, ink drop weight variations, or the like.

In one example, shown in FIG. 4a , the full gamut color LUT may beoptimised to create a predetermined LUT. First, an objective function isdetermined, 401. This may be determined by the operator or may bedetermined automatically by the printer processor 120. The objectivefunction comprises at least one metric, for example, resource usage(e.g. ink usage), or attribute (e.g. smoothness, noise, grain, colorconstancy). Each metric may have a threshold value associated therewithfor compliance with the metric or each metric may be defined to be aminimum or maximum. For example, the objective function may bedetermined to be ink usage such that each node of the full gamut LUT canbe optimised to select an NPac for each color that has the chosenproperty at the optimum (in the example mentioned previously, for inkusage, the NPac of a given color that provides the lowest ink usage).Here each node of the LUT is populated with the most optimal NPacs. Nexta cell size is selected, 403. For a cell comprising an n-by-m array, thevalues of n and m are selected. The cell size is selected to determinethe smallest area coverage permissible in the optimisation (e.g. ¼,1/16, . . . ) as well as the granularity and the degree to whichoptimality can be represented. Therefore, in selection of a cell size,consideration is given to the type of content and the print resolution.

Next an optimisation is carried out, 405, for example an HANSoptimisation. As illustrated in FIG. 3, a cell 301 having the selectedcell size (n-by-m) is applied, 407, across each layer of the full gamutcolor LUT, for example, as shown in FIG. 2. In one example, for eachcell 301, the optimisation, 405, carried out by at least one optimisedNPac being retained for each node for each cell. In the example above,the NPacs retained for each node are those with minimal ink usage, i.e.,all nodes are populated, each with at least one NPac at the minimal inkusage corresponding to that node's color. As a result, a further LUT iscreated that represents a mapping of the nodes to at least one optimisedNPac, that is, one NPac or a series of NPacs that meets criteria of theobjective function.

Given the International Color Consortium (ICC) profile, that interpretsthe device RGB (or CMYK) of the input image color space as a color, amapping of the device RGB is created, 409, to each node of optimisedNPacs. As an LUT has been created that represents a mapping of each nodeto at least one optimised NPac, a predetermined LUT is created, 411,which represents a mapping of the device RGB to at least one NPac. Inone example, the predetermined LUT represents a mapping of all of thedevice RGB values to at least one NPac. In another example, thepredetermined LUT represents a mapping of a sample of the RGB values toat least one NPac. The sampling may be regular sampling of the RGB cube.For example, for two levels this would yield 8 samples (the vertices),for three levels there would be 29 samples, etc. which always forms aregular grid values.

As shown in FIG. 4b , the predetermined LUT is accessed, 451. In oneexample, this may comprise the predetermined LUT created (output) by theprocess shown in the example of FIG. 4a . Each of the node NPacs of eachoptimised node is halftoned, 453 by applying a halftone threshold matrixto each node NPac of the predetermined LUT. The halftone thresholdmatrix comprises a p-by-q array of threshold values. In one example, thevalues of p and q correspond to the values of n and m of the cellselected, 403 in the process of FIG. 4a . Each NPac of the predeterminedLUT is compared to each threshold value. In one example, this returnsthe first NP, whose cumulative area coverage exceeds the threshold valueand this is placed in a p-by-q array at the corresponding location ofthe threshold to create a halftone cell (a p-by-q array of halftonedNPacs). For example, NPac area coverages (in a cumulativerepresentation) are compared against thresholds and it is the first NPwhose cumulative area coverage exceeds the threshold that is placed inthe halftone cell. In more detail, if the NPac is [W=70%, C=10%, M=20%],then its cumulative representation is [W=70%, C=80%, M=100%]. For athreshold value of up to 70%, the corresponding halftone location isleft blank (white), for a threshold value between 70% and 80%, cyan isplaced in the halftone cell and for a threshold above 80%, it is magentathat results. Each NPac of the predetermined LUT is then replaced by thecorresponding halftone cell to create a further LUT that represents amapping of a device RGB, or at least a sample of the device RGB, to atleast one halftone cell.

In one example, the process of FIG. 4b is repeated for different valuesof p and/or q of the threshold halftone matrix to create different sizedhalftone cells for each NPac in the further LUT.

The method of FIGS. 4a and 4b is implemented by a computer program runin a computer. The computer may be separate from the printing system 100of FIG. 1 or could be a part of the print processor 120 of FIG. 1. Themethod of FIGS. 4a and 4b is performed independently of actual datarepresenting an image to be printed.

Other metrics (attributes or resource usages) may also be controlled.The foregoing description refers to controlling ink usage in a printingsystem. However the disclosure may be applied to controlling attributesof a printed image, such as grain and color constancy. The thresholdvalues of the metric may be determined by printing a test image andmeasuring the attribute to be controlled, or by computing it directly asis the case in the examples of ink usage. In another example, theobjective may be a minimization/maximization of some metric, forexample, minimisation of ink usage as described above.

In one implementation, one or more attributes and resource usage may becontrolled. A combination of attributes and/or of one or more attributesand one or more resources usage may be controlled at the same time. Asset out above, the method starts with an initial gamut represented by afull LUT. The full LUT stores the result of applying different metricsto each of its nodes. A user can then set multiple constraints and theoptimal NPacs of each node that simultaneously satisfy them all areidentified and a predetermined LUT is built to map to them. In anexample of the disclosure, the predetermined LUT and the further LUT isbuilt off-line, e.g. independently of the printing system.

Referring to FIG. 5, a color input image 110 is processed by the printerprocessor 120 to generate the control data for printing the color inputimage 110 by the printing device 130, by look-up operations of thefurther LUT created by the example described above with reference toFIG. 4 b.

For a given color input image 110, color management is applied, 501, totransform the color input image into a device RGB (or CMYK) space. Thetransformed input image is divided, 503, into a plurality of inputcells. Each input cell comprises an r-by-s array of pixels, where, inone example, r may equal s and, in a further example r=s=1, i.e. asingle pixel. For each input cell, a resulting color value is computed,505. In one example, an average color value is computed, 505. In theexample of FIG. 5, it is determined whether the resulting RGB colorvalues for each input cell exists as an entry in the further LUT, 507(if the further LUT comprises all RGB value then the entry will existbut if the further LUT comprises a sample of the RGB values, then anentry may not exist). If the entry exists, a look-up operation isperformed, 509 and the corresponding at least one halftone cells arereturned. One of the halftone cells is selected. The selection may bebased on the resolution, for example, for a printed image having aresolution t times greater than the resolution of the input image, ahalftone cell is selected that has a size t times greater than the inputcell size r-by-s. For example, if the value of t is 4, then a 4×4halftone cell is selected to replace a 1×1 input cell of the inputimage, i.e. a single pixel, or a 16×16 halftone cell is selected toreplace a 4×4 input cell of the input image. In the example above of asingle pixel (1×1 input cell), the color value of the pixel is directlyinput for the look-up operation of the LUT and a halftone cell isselected, e.g. a 4×4 halftone cell. The halftone cell may also beselected from those halftone cells output by the look-up operation basedon the grain or patterning to avoid tiling of the same halftone cellover some area coverage. In another example, compression, especially ICFcompression fits well. In the example above, there is an n-by-m inputcell which is compressed with a smaller number of RGB values (by theaveraging of the input cell) and as a result a direct 4×4 halftone cellcould replace a 4×4 input cell.

If no entry for the resulting RGB color value of the input cell existsin the further LUT (for example, the further LUT comprises a sample ofthe RGB values), an interpolation of the resulting RGB color values isperformed. This is achieved by determining, 511, the smallest polyhedron(e.g. tetrahedron or cube) formed by RGB values which are included inthe further LUT which encloses the RGB value of the input cell.Barycentric coordinates are computed for the color value of the inputcell and the enclosing polyhedron RGB values and these coordinates areapplied, 513, as weights to the halftone cells corresponding to thenodes of the enclosing polyhedron, 512. The result is an n-by-m inputcell where at each pixel there is a set of values, one per ink, that is,a floating point halftone cell. Since the values need to be integervalues (drops of printing fluid) for printability (it is not possible toprint fractional drops), the floating point output of the interpolationneeds to be rounded to integer values. For example, if there were onlytwo cells that were interpolated between, each being of only a singlepixel, then the result would be, for example, for weight of 0.8 for cell1 with a CMYK ink drop vector of [0, 2, 1, 0] (i.e., no cyan or blackink, two drops of magenta a drop of yellow) and weight 0.2 for cell 1with a CMYK ink drop vector of [0, 0, 2, 0], the resulting interpolatedink drop vector would be [0, 1.6, 1.2, 0], which after rounding wouldbecome [0, 2, 1, 0]. In one example, four p-by-q ink drop matrices wouldresult each of the pixels, that a thresholding is applied, 514, to mapthe floating point halftone cell to an actual halftone cell withdiscrete drops per pixels.

The selected (or actual) halftone cell then replaces, 515, the currentinput cell. Blocks 501 to 517 are repeated for all input cells. Once allthe input cells have been replaced by a halftone cell, the process ends,519.

A random rotation may be applied to the selected halftone cells as itreplaces each input cell of the input image to provide a result havingless of a repetitive halftone output. The resulting image of halftonecells is then used to create the control data for the printing device130.

Examples of the disclosure are described above with reference to a HANSprinting system. However, the disclosure is also applicable to non-HANSprinting pipelines.

At least some aspects of the examples described herein with reference tothe drawings may be implemented using computer processes operating inprocessing systems or processors. These aspects may also be extended tocomputer programs, particularly computer programs on or in a carrier,adapted for putting the aspects into practice. The program may be in theform of non-transitory source code, object code, a code intermediatesource and object code such as in partially compiled form, or in anyother non-transitory form suitable for use in the implementation ofprocesses described herein. The carrier may be any entity or devicecapable of carrying the program. For example, the carrier may comprise astorage medium, such as a solid-state drive (SSD) or othersemiconductor-based RAM; a ROM, for example a CD ROM or a semiconductorROM; a magnetic recording medium, for example a floppy disk or harddisk; optical memory devices in general; etc.

An example of the disclosure provides a tangible and non-transientcomputer readable medium storing a computer program which when run on acomputer causes the computer to implement the creation a look-up-tablefor use by a printing system by accessing, 451, a predetermined look-uptable representing a mapping of color values of an input color space toink-vectors of a print color space; applying, 453, a p-by-q halftonethreshold matrix to each ink-vector of the predetermined look-up tableto generate a p-by-q halftone cell for each ink-vector; creating, 455, afurther look-up table which maps, at least a sample of, the color valuesof input color space to the halftone cell of each correspondingink-vector.

Similarly, it should be understood that a controller may in practice beprovided by a single chip or integrated circuit or plural chips orintegrated circuits, optionally provided as a chipset, anapplication-specific integrated circuit (ASIC), field-programmable gatearray (FPGA), etc. For example, this may apply to all or part of acontroller or other printer control circuitry. The chip or chips maycomprise circuitry (as well as possibly firmware) for embodying at leasta data processor or processors as described above, which areconfigurable so as to operate in accordance with the described examples.In this regard, the described examples may be implemented at least inpart by computer software stored in (non-transitory) memory andexecutable by the processor, or by hardware, or by a combination oftangibly stored software and hardware (and tangibly stored firmware).

A print system that uses NPacs in image processing is a Halftone AreaNeugebauer Separation (HANS) printing pipeline. NPacs are specific toHANS. HANS is an image processing system using NPs and NP area coverages(NPacs) and halftoning that may be optimized for a predetermined inkusage, grain or other print attributes such as smoothness, noise, grainor color constancy. (It should be appreciated that the disclosure may beused with other printing systems.)

In the examples above, a LUT that combines a metric-optimized colorpipeline such as those computed in the context of HANS or othersrequires both custom hardware that is capable of interpolating in anappropriate domain (ink vectors for a normal pipeline, NPacs for HANS)and the subsequent step of halftoning. As a result, proving benefits ofa HANS, or otherwise optimised pipeline without the need to have acustom halftoning algorithm implemented and without an explicit colorseparation step either. The further LUT created is a single colorlook-up table (LUT) that takes device color (e.g. RGB) as input andresults in pre-halftoned cells that are placed directly forcorresponding input cells of an input image, much like a stenciloperation. This provides faster pipeline stages as either justinterpolation or just a look-up operation takes place, without aseparate halftoning stage.

It should be noted that the above-mentioned examples illustrate ratherthan limit what is described herein, and that those skilled in the artwill be able to design many alternative implementations withoutdeparting from the scope of the appended claims. The word “comprising”does not exclude the presence of elements other than those listed in aclaim, “a” or “an” does not exclude a plurality, and a single processoror other unit may fulfil the functions of several units recited in theclaims.

The invention claimed is:
 1. A method of creating a look-up table foruse in a printing system, the printing system printing a color inputimage in a print color space, the method comprising: accessing apredetermined look-up table representing a mapping of color values of aninput color space to ink-vectors of the print color space, the printcolor space having a plurality of primary colors; applying a halftonethreshold matrix to each ink-vector of the predetermined look-up tableto generate a halftone cell for each ink-vector, by comparing eachink-vector to threshold values of the threshold matrix to determine aprimary color of the halftone cell for each ink-vector; and creating afurther look-up table which maps, at least a sample of, the color valuesof the input color space to the halftone cells that have been generatedfor the ink-vectors of the print color space, wherein the printingsystem uses the further look-up table in printing the color input imagein the print color space.
 2. The method of claim 1, wherein applying thehalftone threshold matrix to each ink-vector comprises applying aplurality of halftone threshold matrices to generate a plurality ofdifferent size halftone cells for each ink-vector.
 3. The method ofclaim 1, wherein the method further comprises creating the predeterminedlook-up table by: determining an objective function; selecting acell-size; performing a color separation optimisation for each node ofthe XYZ input color space, the optimisation being based on thedetermined objective function and determined cell-size to generate atleast one ink-vector in a print color space for each node of the XYZinput color space; and creating a first look-up table representing amapping of the optimised nodes to at least one ink-vector; mapping acolor value of the input color space to one of each of the optimisednodes; and creating the predetermined look-up table which maps the colorvalues of the input color space to at least one ink-vector.
 4. Themethod of claim 3, wherein the method further comprises: selecting atleast one of a metric of resource usage and/or attribute of the printingsystem; and wherein determining an objective function is based on theselected at least one metric.
 5. The method of claim 3, wherein mappinga color value of the input color space to one of each of the optimisednodes comprises mapping a regular sample of color values of the fullgamut of the input color space.
 6. The method of claim 3, wherein stepapplying a p by q halftone threshold matrix comprises halftoning byapplying a threshold matrix of values, the threshold matrix having asize the same as the selected cell-size.
 7. A method of processing acolor input image into a printable format, the color input imagecomprising a plurality of pixels, each pixel having a color value in aninput color space and the printable image comprising a plurality ofprintable pixels defined by an ink-vector in a print color space, themethod comprising: responsive to an entry being present for a colorvalue of at least one pixel of the input image within a lookup tablewhich maps, at least a sample of, the color values of the input colorspace to halftone cells, retrieving a corresponding at least onehalftone cell from the lookup table which matches the color value of theat least one pixel of the input image; responsive to the entry beingabsent for the color value of the at least one pixel of the input pixelwithin the lookup table, interpolating the at least one halftone cellfrom other halftone cells of other entries within the lookup tablecorresponding to color values enclosing the color value of the at leastone pixel of the input image; and replacing the at least one pixel withone of the at least one halftone cell, wherein a printing system printsthe color input image in the printable format using the at least onehalftone cell that has replaced the at least one pixel of the inputimage.
 8. The method of claim 7 wherein the method further comprises:dividing the plurality of pixels of the input image into a plurality ofinput cells, each input cell comprising a pixel array of a predeterminedsize; for each input cell: computing a value of color for the inputcell; carrying out the lookup operation of the color value of the inputcell to retrieve a corresponding at least one halftone cell whichmatches the computed color value; and replacing the input cell with oneof the retrieved at least one halftone cells.
 9. The method of claim 7wherein replacing the at least one pixel comprises randomly rotating theone of the at least one halftone cells; and replacing the at least onepixel with the randomly rotated one of the at least one halftone cells.10. The method of claim 8, wherein computing a value of colors for theinput cell comprises averaging the color values of the input cell. 11.The method of claim 7, wherein the method further comprises selectingone of the retrieved at least one halftone cells based on at least oneattribute of the printing system, or the respective resolutions of theinput image and the printed image.
 12. The method of claim 7, whereininterpolating the at least one halftone cell comprises: determining thesmallest polyhedron of color values in the input color space thatencloses the color value of the input cell; carrying out a lookupoperation of the color values of the enclosing polyhedron to retrievethe corresponding halftone cells; computing barycentric co-ordinates ofthe color value of the input cell and the color values of the enclosingpolyhedron; applying the computed co-ordinates as weights to theretrieved halftone cells to create a floating point halftone cell; andapplying thresholding to map the floating point halftone cell to anactual halftone cell.
 13. One or more non-transitory computer readablestorage media comprising instructions stored thereon, that whenexecuted, direct a processor to perform a method comprising: responsiveto an entry being present for a color value of at least one pixel of aninput image within a lookup table which maps, at least a sample of, thecolor values of the input color space to halftone cells, retrieving acorresponding at least one halftone cell from the lookup table whichmatches the color value of the at least one pixel of the input image;responsive to the entry being absent for the color value of the at leastone pixel of the input pixel within the lookup table, interpolating theat least one halftone cell from other halftone cells of other entrieswithin the lookup table corresponding to color values enclosing thecolor value of the at least one pixel of the input image, wherein aprinting system prints the color input image using the at least onehalftone cell that has replaced the at least one pixel of the inputimage.